Accessing window pixel data for application sharing

ABSTRACT

Screen sharing in which image pixel data operable to display one or more user interface windows associated with at least one shared application is retrieved from a memory. The retrieving excludes image pixel data operable to display at least one other display object currently contained in a user interface of said computer. The retrieved image pixel data is combined into a shared image.

BACKGROUND OF THE INVENTION

The present invention relates generally to collaboration software andsystems, and more specifically to sharing screen data among multiplecomputers during a collaborative on-line session.

BRIEF SUMMARY

A screen sharing technique is disclosed in which image pixel dataoperable to completely display one or more user interface windowsassociated with at least one shared application is selectively retrievedby a collaboration application from a memory in a computer. Thedisclosed retrieving is selective, in that it only retrieves the imagepixel data for windows associated with the shared application, andexcludes from the retrieval image pixel data operable to display atleast one other display object currently contained in a graphical userinterface of the computer. The retrieved image pixel data is combinedinto a shared composite image for distribution from the computer to oneor more other computers of other users participating in an on-linecollaboration session.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

In order to facilitate a fuller understanding of the present invention,reference is now made to the appended drawings. These drawings shouldnot be construed as limiting the present invention, but are intended tobe exemplary only.

FIG. 1 is a first block diagram showing an example of structure ofcomponents in an illustrative embodiment;

FIG. 2 is a block diagram showing an example of structure of componentsin an illustrative operational environment including the illustrativeembodiment of claim 1;

FIG. 3 is a first flow chart showing steps performed during operation ofan illustrative embodiment;

FIG. 4 is a second flow chart also showing steps performed duringoperation of an illustrative embodiment;

FIG. 5 is a screen shot showing at least a portion of a graphical userinterface displayed by a first collaborating computer system consistentwith an illustrative embodiment; and

FIG. 6 is a screen shot showing at least a portion of a graphical userinterface as displayed by a second collaborating computer systemconsistent with an illustrative embodiment.

DETAILED DESCRIPTION

FIG. 1 is a first block diagram showing an example of the structure ofcomponents in an illustrative embodiment. As shown in FIG. 1, a Computer10 includes at least one Processor 12, a Memory 14, a GraphicsController 16, a Display Device 18, and other I/O Devices and/orInterfaces 20. In the example of FIG. 1, the Memory 14 stores aCollaboration Application 22, one or more Shared Application(s) 24, andone or more Non-Shared Application(s) 26. The Memory 14 also may storean Operating System 28, a Frame Buffer 30 and a Window Pixel Image Store32. The Collaboration Application includes and/or has access to a SharedComposite Image 34, one or more Shared Process Identifiers (IDs) 36, andone or more Shared Window Identifiers (IDs) 38. The Operating System 28may include a Window Image Pixel Data Application Programming Interface(API) 40. A Current Composite Display Image 42 is shown within the FrameBuffer 30.

The Window Pixel Image Store 32 stores a number of files or the like,each containing a complete set of pixels for displaying a correspondinguser interface window currently present within the graphical userinterface of Computer 10, a current view of which is displayed on theDisplay Device 18. Accordingly, each pixel file in the Window PixelImage Store 32 contains a complete set of image pixel data operable tocompletely display a corresponding window that is present within thegraphical user interface of Computer 10 regardless of whether the windowis currently obscured, either partly or completely, by another window orother user interface component. Any specific type of graphical userinterface may be provided by Computer 10 that includes window displayobjects, including but not limited to a virtual desktop or the like.

The pixel files stored within the Window Pixel Image Store 32 includeShared Window Pixel Files 44 and Non-Shared Window Files 46. Each of theShared Window Pixel Image Files 44 contains the pixel data forcompletely displaying a user interface window owned or otherwiseassociated with at least one of the Shared Applications 24. Each of theNon-Shared Window Pixel Image Files 46 contains the pixel data forcompletely displaying a user interface window owned or otherwiseassociated only with one or more of the Non-Shared Applications 26.

The Current Composite Display Image 42 is a composite image used todisplay the current view of the user interface. Specifically, theCurrent Composite Display Image 42 is made up of only the pixelsoperable to represent the currently visible portions of display objectsin the user interface (e.g. windows) through the Display Device 18.Accordingly, the Current Composite Display Image 42 is made up of thepixels used to generate a single screen currently displayed on theDisplay Device 18. The Current Composite Display Image 42 does notinclude pixel data operable to display any currently obscured portionsof windows that are only partially visible in the current view.

In one embodiment, the Graphics Controller 16 operates to generate theCurrent Composite Display Image 42, responsive to pixel data includingthe window pixel data stored in the Window Pixel Image Store 32, andfurther responsive to a current visual arrangement of display elementswithin the user interface.

The Collaboration Application 22 operates to generate the SharedComposite Image 34 such that the Shared Composite Image 34 contains onlythe image data for user interface windows associated with one or moreapplications that are currently being shared through a collaborationsession between the user of Computer 10 and the users of one or moreother computers. The Shared Composite Image 34 is shared with one ormore other computer systems during the collaboration session. TheColloboration Application 22 may, for example, be embodied as anyappropriate type of application, such as a native application executingon the Computer 10, a browser-based Web application, or some otherspecific type of application.

Further with reference to the illustrative embodiment of FIG. 1, eachidentifier in the Shared Process ID(s) 36 uniquely identifies anapplication on Computer 10 that is currently being shared, i.e. acorresponding one of the Shared Applications 24. The CollaborationApplication 22 may use the Shared Process ID(s) 36 to obtain the SharedWindow ID(s) 38. For example the Collaboration Application 22 may obtainthe Shared Window ID(s) 38 by passing the Shared Process ID(s) 36 to theOperating System 28, which then in turn passes back a list of windowidentifiers uniquely identifying a set of windows including only thosewindows associated with the application(s) indicated by the SharedProcess ID(s) 36, e.g. a list of windows owned by the SharedApplication(s) 24.

The Collaboration Application 22 uses the Shared Window ID(s) 38 toretrieve the Shared Window Pixel Images 44 from the Window Pixel ImageStore 32. For example, the Window Image Pixel Data API 40 provided byOperating System 28 may accept window identifiers and return thecorresponding pixel files from the Window Pixel Image Store 32. In suchan embodiment, the Collaboration Application 22 operates to provide theShared Window ID(s) 38 to the Window Image Pixel Data API 40, andaccepts the returned Shared Window Pixel Image Files 44. TheCollaboration Application 22 may then operate to combine the SharedWindow Pixel Image Files 44 into a single composite image to be shared,shown in FIG. 1 by the Shared Composite Image 34.

While the Frame Buffer 30, Window Pixel Image Store 32, and GraphicsController 16 are shown as separate blocks in FIG. 1, those skilled inthe art will recognize that the disclosed system is not limited to suchan arrangement. Accordingly, these logic blocks may be integrated into asingle component or device, or otherwise combined or organized asappropriate for a given operational environment.

FIG. 2 is a block diagram showing the structure of components in anillustrative operational environment including the illustrativeembodiment of claim 1. As shown in FIG. 2, the Shared Composite Image 34may be transmitted from Computer 10 to a number of other computersystems of other users participating in a collaboration session with theuser of Computer 10, e.g. Other Collaborating Computer 48, shown forpurposes of illustration including Collaborating Computer 47,Collaborating Computer 49, etc. The Shared Composite Image 34 may, forexample, be a first image or key frame within the collaboration session,transmitted from the Computer 10 in a compressed file format, such asJPEG (“Joint Photographic Experts Group”), PNG (“Portable NetworkGraphics”), or any other appropriate format for a given implementation.

While for purposes of concise illustration FIG. 2 shows the Computer 10transmitting the Shared Composite Image 34 to the Other CollaboratingComputers 48, those skilled in the art will recognize that one or moreserver systems may be located between the Computer 10 and the OtherCollaborating Computers 48. The Computer 10, Other CollaboratingComputers 48 and any such servers may be communicably connected usingany specific kind of data communication networks and/or protocols.

The Computer 10 of FIG. 1 and the Other Collaborating Computers 48 ofFIG. 2 may each be embodied as or include any specific type of computersystem and/or intelligent electronic device, such as a desktop, laptop,or palmtop computer system, or a personal digital assistant, cell phone,and/or other electronic device. The Display Device 18 may be anyspecific type of display device that is capable of displaying agraphical user interface including user interface window displayobjects, such as a liquid crystal display (LCD), cathode ray tube (CRT),interferometric modulator display (IMOD), light emitting diode (LED), orother specific type of display device.

Those skilled in the art will recognize that the CollaborationApplication 22 may be embodied using software or firmware, such ascomputer application program code, operating system program code,middleware, and/or wholly or partly using digital hardware components,such as application specific integrated circuits (ASICs),field-programmable gate arrays (FPGAs), and the like, and/orcombinations of hardware and/or software and/or firmware. Those skilledin the art will further recognize that the Processor(s) 12 in Computer10 may include one or more processors of any specific type, and that theMemory 14 may be embodied as any specific type of program code or datastorage, such as volatile or non-volatile memory, operable to storeprogram code executable on such processors and associated data.

FIG. 3 is a first flow chart showing steps performed during operation ofan illustrative embodiment. The steps of FIG. 3 may, for example, beperformed in whole or in part by the Collaboration Application 22 shownin FIG. 1. At step 50, the disclosed system retrieves image pixel datafor user interface windows associated with one or more sharedapplications, while excluding image pixel data associated withnon-shared applications. At step 52, the disclosed system combines allthe image pixel data retrieved at step 50 into a shared image to beconveyed to the computer systems of other users participating in thecollaboration session. With reference to the embodiment of FIG. 1, theCollaboration Application 22 may operate to combine the Shared WindowsPixel Files 44 returned by the Operating System 28 into the SharedComposite Image 34. For example, the Collaboration Application 22 maycombine the Shared Windows Pixel Files 44 into the Shared CompositeImage 34 such that the shared user interface windows corresponding tothe Shared Windows Pixels Files 44 are represented in the same relativepositions they currently have within the graphical user interfacedisplayed to the user of Computer 10 through the Display Device 18. Inone embodiment, the steps of FIG. 3 are performed periodically torefresh the contents of Shared Composite Image 34 to reflect the mostcurrent appearance and contents of the shared windows represented by theShared Windows Pixel Files 44.

FIG. 4 is a second flow chart showing steps performed during operationof an illustrative embodiment. The steps shown in FIG. 4 are an exampleof steps that may be performed during step 50 of FIG. 3. The steps ofFIG. 4 may, for example, be performed by the Collaboration Application22 of FIG. 1. At step 60, the disclosed system obtains a set of sharedwindow identifiers based on the process identifiers of one or moreapplications currently being shared in a collaboration session. Forexample, the Collaboration Application 22 may include or have access toShared Process ID(s) 36, which includes a unique process identifier foreach of the Shared Applications 24. In an alternative embodiment, theCollaboration Application 22 may operate by collecting a complete set ofwindow identifiers for all windows currently within the user interface,and then select out only the identifiers for windows that are owned bythe Shared Applications 24, responsive to the Shared Process ID(s) 36.

At step 62, the disclosed system passes the shared window identifiersobtained in step 60 as inputs to an application programming interface orthe like that returns complete image pixel data for the windowscorresponding to the window identifiers. For example, the CollaborationApplication 22 may operate at step 62 to pass the Shared Window ID(s) 38to the Operating System 28 through the Window Image Pixel Data API 40.At step 64, the disclosed system receives the complete image pixel datafor only the windows indicated by the window identifiers passed to theapplication user interface at step 62, without any image pixel imagedata for any other windows present within the user interface. Forexample, at step 62 the Operating System 28 may return only the SharedWindows Pixel Files 44 to the Collaboration Application 22. By issuing arequest at step 62 for only the pixel image data for windows that areowned by the applications being shared in the current collaborationsession (i.e. Shared Applications 24), the Collaboration Application 22excludes from the retrieval step 64 any pixel image data for windowsowned by any non-shared applications (i.e. Non-Shared Applications 26).

FIG. 5 is a screen shot showing at least a portion of a user interfaceas displayed by a first collaborating computer system consistent with anillustrative embodiment. The screen shot of FIG. 5 may, for example, bea portion of the current view of the graphical user interface displayedto the user of Computer 10 through the Display Device 18. As shown inFIG. 5, the current view of the user interface includes Non-SharedWindow 1 70, Non-Shared Window 2 71, Non-Shared Window 3 73, Non-SharedWindow 4 75, Shared Window 1 72, and Shared Window 2 74. For example,the shared windows Shared Window 1 72 and Shared Window 2 74 may be twowindows owned by an application being shared during a collaborationsession, and for example shown in the Shared Applications 24. The sharedapplication may be any specific kind of application. The Non-SharedWindows 70, 71, 73 and 75 may be windows owned by a non-sharedapplication contained in the Non-Shared Applications 26, or by any otherprocess not associated with the application being shared through thecollaboration session. In the example of FIG. 5, the user of Computer 10is sharing the application that owns Shared Window 1 72 and SharedWindow 2 74 with one or more other users through the CollaborationApplication 22. However, because the application that owns Non-SharedWindow 70 is not shared, the user of Computer 10 does not intend toshare the contents of Non-Shared Window 70. For example, the Non-SharedWindow 70 may be a pop-up window containing an instant messaging dialogbetween the user of Computer 10 and some other user.

FIG. 6 is a screen shot showing at least a portion of a user interfaceas displayed by a second collaborating computer system consistent withan illustrative embodiment. The screen shot of FIG. 6 may, for example,be a portion of the current view of the graphical user interfacedisplayed to a user of one of the Other Collaborating Computers 48 shownin FIG. 2. As shown in FIG. 6, a Collaboration Application Viewer 80includes Shared Image 82 generated from the Shared Composite Image 34received from Computer 10. The Shared Image 82 includes the SharedWindow 1 72 and Shared Window 2 74 in the same positions that they havewithin the user interface of Computer 10, but without the Non-SharedWindow 70.

The disclosed system provides various advantages over other approachesto providing screen sharing. For example, in an approach to screensharing that does not include the disclosed techniques, pixels for theshared image may be obtained from a frame buffer contained within orcontrolled by a video display device or controller. Such frame bufferpixels only reflect a current view of the user interface. The resultingshared image is exactly what is currently displayed on the sharingcomputer's screen, i.e. including all visible portions of applicationwindows (for both shared and non-shared applications), desktop elements,backgrounds, etc., that have already been composited into the singlecomposite image stored in the frame buffer and used by the video deviceto generate the current view. The disclosed system avoids problemsarising from such an approach, allowing the sharing user to share onlyparticular display elements, such as only a single window or only thewindows owned by a single application.

For example, a user may wish to share only a particular word processingapplication. When the sharing user receives an incoming instant message,and the messaging window appears on top of the shared word processingwindow, the user does not wish to share the contents of the messagingwindow, since it may contain personal or sensitive information. To avoidsharing the contents of the message window, a screen sharing approachwithout the disclosed techniques may need to implement “occlusiondetection”, in which the screen sharing technology is responsible formonitoring the positions of all open windows and applications, forexample via a windowing layer in the operating system, and determiningif any part of the shared area is occluded by another application orwindow. When occlusion is detected, the resulting image may need to be“grayed out” in the area where the occlusion has occurred, in order toavoid sharing personal or sensitive information. As a result of suchgraying out, areas of the shared image appear to the sharing users as asolid gray color where the occlusion has occurred, at least until thesharing user removes the occluding display objects from his local userinterface. The disclosed system advantageously avoids such anaesthetically unpleasant and disruptive approach for viewers in thecollaborative session.

The disclosed system also avoids potential security concerns associatedwith the timing of occlusion detection. Due to the decoupled,asynchronous nature of an operating system's windowing layer with regardto the video device, the timing of any necessary occlusion detection iscritical, and certain timing conditions may result in a failure todetect the presence of an occluding display object. If occlusion is notdetected properly, and graying out is not performed with regard to suchnon-shared display objects, the unintentional sharing of a window orapplication may result.

For example, in a system that does not include the disclosed techniques,at the time an instant message is received a window may be generatedthat occludes a currently shared application window. If at the same timea capture of image pixel data from the frame buffer to be used in theshared image has already begun, the occlusion may not be detected untilthe pixels captured from the frame buffer are shared, and the instantmessaging window inadvertently revealed to others in the sharing sessionprior to the occlusion being detected.

The disclosed system also avoids problems that may result from theincreasingly prevalent use of transparent windows. A system that doesnot include the disclosed techniques, and that extracts shared pixelsfrom a composite image stored within a frame buffer used to provide thecurrent view of the user interface on a display device, mayinadvertently allow any non-shared display objects located below ashared transparent window to be shared.

Accordingly, by selectively retrieving complete pixel image data forshared windows prior to the pixel data being composited into a displayimage representing only the current view of the user interface,including only visible portions of shared and non-shared displayobjects, the disclosed system alleviates various problems and increasedcomplexity associated with occlusion detection, as well as disadvantagesassociated with “graying out” occluded areas in the shared image.

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), an optical storagedevice, a magnetic storage device, or any suitable combination of theforegoing. In the context of this document, a computer readable storagemedium may be any tangible medium that can contain, or store a programfor use by or in connection with an instruction execution system,apparatus, or device.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Smalltalk, C++ or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Aspects of the present invention are described above with reference toone or more flowchart illustrations and/or block diagrams of methods,apparatus (systems) and computer program products according toembodiments of the invention. It will be understood that each block ofthe flowchart illustrations and/or block diagrams, and combinations ofblocks in the flowchart illustrations and/or block diagrams, can beimplemented by computer program instructions. These computer programinstructions may be provided to a processor of a general purposecomputer, special purpose computer, or other programmable dataprocessing apparatus to produce a machine, such that the instructions,which execute via the processor of the computer or other programmabledata processing apparatus, create means for implementing thefunctions/acts specified in the flowchart and/or block diagram block orblocks. These computer program instructions may also be stored in acomputer readable medium that can direct a computer, other programmabledata processing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the invention. Asused herein, the singular forms “a”, “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”and/or “comprising,” when used in this specification, specify thepresence of stated features, integers, steps, operations, elements,and/or components, but do not preclude the presence or addition of oneor more other features, integers, steps, operations, elements,components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed. Thedescription of the present invention has been presented for purposes ofillustration and description, but is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the artwithout departing from the scope and spirit of the invention. Theembodiment was chosen and described in order to best explain theprinciples of the invention and the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated.

1. (canceled)
 2. (canceled)
 3. (canceled)
 4. (canceled)
 5. (canceled) 6.(canceled)
 7. (canceled)
 8. (canceled)
 9. (canceled)
 10. (canceled) 11.A system comprising: a computer including at least one processor and amemory, said memory storing collaboration application program logic,said collaboration program logic operable when executed to shareportions of a user interface among multiple computers by retrieving,from said memory, image pixel data operable to display one or more userinterface windows associated with at least one shared application,wherein said retrieving excludes image pixel data operable to display atleast one other display object currently contained in a user interfaceof said computer, and combining said retrieved image pixel data operableto display said one or more user interface windows associated with atleast one shared application into a shared image.
 12. The system ofclaim 11, said collaboration program logic further operable whenexecuted to share portions of a user interface among multiple computersby obtaining, responsive to a process identifier associated with saidshared application, a set of shared window identifiers, wherein eachshared window identifier in said set of shared window identifiersidentifies a corresponding one of said user interface windows associatedwith said shared application.
 13. The system of claim 12, furthercomprising: wherein said retrieving said image pixel operable to displaysaid user interface windows associated with said shared applicationincludes providing said set of shared window identifiers to anapplication programming interface that returns said image pixel dataoperable to display said user interface windows associated with saidshared application.
 14. The system of claim 12, said collaborationprogram logic further operable when executed to share portions of a userinterface among multiple computers by obtaining a set of all currentwindow identifiers, said set of all current window identifiers includingan identifier for each display object currently contained in said userinterface of said computer, and wherein said obtaining said set ofshared window identifiers includes using said process identifierassociated with said shared application to identify those of said set ofall current window identifiers that are owned by said sharedapplication.
 15. The system of claim 13, wherein said applicationprogramming interface is provided by an operating system on saidcomputer.
 16. The system of claim 11, wherein said retrieving imagepixel data operable to display each of one or more user interfacewindows associated with at least one shared application is from a memoryseparate from a frame buffer used to send a current composite displayimage to a display device of said computer.
 17. The system of claim 11,wherein said user interface windows associated with said sharedapplication are also currently contained in said user interface of saidsharing computer.
 18. The system of claim 11, wherein said at least oneother display object currently contained in a user interface of saidcomputer excluded from said retrieving comprises a window associatedwith an application currently running on said computer other than saidshared application.
 19. The system of claim 11, wherein said at leastone other display object currently contained in a user interface of saidcomputer excluded from said retrieving comprises a graphical userinterface element associated with an operating system on said computer.20. The system of claim 11, said collaboration program logic furtheroperable when executed to share portions of a user interface amongmultiple computers by transmitting said composite image from saidcomputer for display on one or more other computers during acollaboration session.
 21. A computer program product comprising: atleast one computer readable storage medium having screen sharing programcode embodied thereon, the program code comprising program code forretrieving, from said memory, image pixel data operable to display oneor more user interface windows associated with at least one sharedapplication, wherein said retrieving excludes image pixel data operableto display at least one other display object currently contained in auser interface of said computer, and program code for combining saidretrieved image pixel data operable to display said one or more userinterface windows associated with at least one shared application into ashared image.